import {DynamicModule, Module} from '@nestjs/common';
import {LogService} from './log.service';

// 我们要在 LogModule 模块以外的模块要使用到上面定义的 log 和 error方法
// 就要在 LogModule 对外暴露出去该 module
// @Module({
//     providers: [LogService],
//     // 这里是以数组的方式,表示一个模块里面可以对外暴露多个
//     exports: [LogService],
// })


// 创建动态模块
@Module({})
// register 函数中可以接收外部传递过来的变量, 或者对象
export class LogModule {
    static register(prefix: string): DynamicModule {
        return {
            module: LogModule,
            providers: [
                LogService,
                // 使用 useValue 的方式在模块中注入一个变量, 可以理解为在该模块中注入了别的模块
                // 只是注入的方式不是 import,   而是采用模块调用静态方法的方式
                {
                    provide: "PREFIX",
                    useValue: prefix
                }
            ],
            exports: [LogService]
        }
    }
}

